<?php

class SiteController extends Controller
{
	/**
	 * Declares class-based actions.
	 */
	public function actions()
	{
		return array(
			// captcha action renders the CAPTCHA image displayed on the contact page
			'captcha'=>array(
				'class'=>'CCaptchaAction',
				'backColor'=>0xFFFFFF,
			),
			// page action renders "static" pages stored under 'protected/views/site/pages'
			// They can be accessed via: index.php?r=site/page&view=FileName
			'page'=>array(
				'class'=>'CViewAction',
			),
		);
	}

	/**
	 * This is the default 'index' action that is invoked
	 * when an action is not explicitly requested by users.
	 */
	public function actionIndex()
	{
		// renders the view file 'protected/views/site/index.php'
		// using the default layout 'protected/views/layouts/main.php'
		$this->render('index');
	}
	
	public static function actionLogger ($content)
	{
		$myFile = "log.txt";
		$fh = fopen($myFile, 'w') or die("can't open file");
		$stringData = "$content\n";
		fwrite($fh, $stringData);
		fclose($fh);
	}

	/**
	 * This is the action to handle external exceptions.
	 */
	public function actionError()
	{
	    if($error=Yii::app()->errorHandler->error)
	    {
	    	if(Yii::app()->request->isAjaxRequest)
	    		echo $error['message'];
	    	else
	        	$this->render('error', $error);
	    }
	}

	/**
	 * Displays the contact page
	 */
	public function actionContact()
	{
		$model=new ContactForm;
		if(isset($_POST['ContactForm']))
		{
			$model->attributes=$_POST['ContactForm'];
			if($model->validate())
			{
				$headers="From: {$model->email}\r\nReply-To: {$model->email}";
				mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers);
				Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
				$this->refresh();
			}
		}
		$this->render('contact',array('model'=>$model));
	}
	
	//initalize user and contents point entries
	//1 - id = uid or cid
	//2 - user or content
	//3 - Model of the content
	public static function actionInitPoints ( $id, $type, $ctype )
	{
		if ($type == 'user') //user points
		{
			$uid = $id;
			$sql = "select name from creative_types"; 
			$command = Yii::app()->db->createCommand($sql);   
			$data=$command->queryAll();	
			$i=0;
			foreach($data as $obj)
			{
				$obj = $obj['name'];
				$sql = "INSERT INTO usr_points (user_id, type, act_value) 
						VALUES ($uid, '$obj', 0)"; 
				$command = Yii::app()->db->createCommand($sql);   
				$data=$command->execute();	
				$i++;
			}	
			
			//sum
			$sql = "INSERT INTO usr_points (user_id, type, act_value) 
						VALUES ($uid, 'sum', 0)"; 
			$command = Yii::app()->db->createCommand($sql);   
			$data=$command->execute();	
			
			//other
			$sql = "INSERT INTO usr_points (user_id, type, act_value) 
						VALUES ($uid, 'other', 0)"; 
			$command = Yii::app()->db->createCommand($sql);   
			$data=$command->execute();	
			
			//activity
			$sql = "INSERT INTO usr_points (user_id, type, act_value) 
						VALUES ($uid, 'activity', 0)"; 
			$command = Yii::app()->db->createCommand($sql);   
			$data=$command->execute();	
			
		}
		else //content points
		{
			$cid = $id;
			
			$sql = "INSERT INTO content_points (content_id, content_type, value) 
					VALUES ($cid, '$ctype', 0)"; 
			$command = Yii::app()->db->createCommand($sql);   
			$data=$command->execute();	
		}
	}
	
	//update appropiate values 
	//1 - create_creative/create_other/bslsls
	//2 - which Model
	//3 - id of the creatice category	
	public static function actionAddPoints ($point_type, $content_type, $cid, $ctype)
	{ 
		$uid=Yii::app()->user->id;
		
		if ($point_type == 'create_creative')
		{
			$sql = "select name from creative_types WHERE id=$ctype"; 
			$command = Yii::app()->db->createCommand($sql);   
			$data=$command->queryAll();	
			
			$ctype = $data[0]['name'];
		}
		else
		{
			if ($point_type == 'create_other')
			{
				$ctype='other';
			}
			else
			{
				$ctype='activity';
			}
		}	
		
		//point value
		$sql = "select value from point_types where type='$point_type'"; 
		$command = Yii::app()->db->createCommand($sql);   
		$data=$command->queryAll();	
		
		$value = $data[0]['value'];

		//point updates
		
		//type
		$sql = "UPDATE usr_points SET act_value=act_value+$value WHERE user_id=$uid AND type='$ctype'";
		$command = Yii::app()->db->createCommand($sql);  
		$data=$command->execute();
		
		//sum
		$sql = "UPDATE usr_points SET act_value=act_value+$value WHERE user_id=$uid AND type='sum'";
		$command = Yii::app()->db->createCommand($sql);  
		$data=$command->execute();
		
		//content
		$sql = "UPDATE content_points SET value=value+$value WHERE content_id=$cid AND content_type='$content_type'";
		$command = Yii::app()->db->createCommand($sql);  
		$data=$command->execute();
	}
	
		public static function actionDelPoints ($point_type, $content_type, $cid, $ctype)
	{ 
		$uid=Yii::app()->user->id;
		
		if ($point_type == 'create_creative')
		{
			$sql = "select name from creative_types WHERE id=$ctype"; 
			$command = Yii::app()->db->createCommand($sql);   
			$data=$command->queryAll();	
			
			$ctype = $data[0]['name'];
		}
		else
		{
			if ($point_type == 'create_other')
			{
				$ctype='other';
			}
			else
			{
				$ctype='activity';
			}
		}	
		
		//point value
		$sql = "select value from point_types where type='$point_type'"; 
		$command = Yii::app()->db->createCommand($sql);   
		$data=$command->queryAll();	
		
		$value = $data[0]['value'];

		//point updates
		
		//type
		$sql = "UPDATE usr_points SET act_value=act_value-$value WHERE user_id=$uid AND type='$ctype'";
		$command = Yii::app()->db->createCommand($sql);  
		$data=$command->execute();
		
		//sum
		$sql = "UPDATE usr_points SET act_value=act_value-$value WHERE user_id=$uid AND type='sum'";
		$command = Yii::app()->db->createCommand($sql);  
		$data=$command->execute();
		
		//content
		$sql = "UPDATE content_points SET value=value-$value WHERE content_id=$cid AND content_type='$content_type'";
		$command = Yii::app()->db->createCommand($sql);  
		$data=$command->execute();
	}
	
	
	
	/**
	 * Displays the login page
	 */
	public function actionLogin()
	{
		$model=new LoginForm;

		// if it is ajax validation request
		if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}

		// collect user input data
		if(isset($_POST['LoginForm']))
		{
			$model->attributes=$_POST['LoginForm'];
			// validate user input and redirect to the previous page if valid
			if($model->validate() && $model->login())
				$this->redirect(Yii::app()->user->returnUrl);
		}
		// display the login form
		$this->render('login',array('model'=>$model));
	}

	/**
	 * Logs out the current user and redirect to homepage.
	 */
	public function actionLogout()
	{
		Yii::app()->user->logout();
		$this->redirect(Yii::app()->homeUrl);
	}
}